import com.sun.scenario.effect.impl.sw.java.JSWBlend_SRC_OUTPeer;

import java.util.Arrays;

/**
 *只能放integer的
 */
public class MyArraylist{
    public int[] elem;
    public int usedsize;

    //构造
    public MyArraylist(){
        this.elem=new int[10];
    }


        // 打印顺序表
        public void mytoString() {
            for(int i=0;i<this.usedsize;i++){
                System.out.println(this.elem[i]+" ");
            }

        }

        // 新增元素,默认在数组最后新增
        public void add(int data) {
            if(isFull()){
                this.elem= Arrays.copyOf(this.elem,2*this.elem.length);
            }
            this.elem[this.usedsize]=data;
            this.usedsize++;
        }

        // 在 pos 位置(xiabiao)新增元素
        public void add(int pos, int data) {
        if(pos<0||pos>usedsize){
            System.out.println(false);
        }
            if(isFull()){
                this.elem= Arrays.copyOf(this.elem,2*this.elem.length);
            }
            for(int i=this.usedsize-1;i>=pos;i--){
                elem[i+1]=elem[i];
            }
            this.elem[pos]=data;
            this.usedsize++;

        }

        // 判定是否包含某个元素
        public boolean contains(int toFind) {
            for (int i=0;i<usedsize;i++){
                if(toFind== elem.length)
                    return true;
            }
            return false;
        }

        // 查找某个元素对应的位置
        public int indexOf(int toFind) {
            for (int i=0;i<usedsize;i++){
                if(toFind== elem.length)
                    return i;
            }
            return -1;
        }

        // 获取 pos 位置的元素
        public int get(int pos) {
            if(pos<0||pos>=usedsize){
                throw new RuntimeException("输入不合法！");

            }
            return this.elem[pos];


        }

        // 给 pos 位置的元素设为 value
        public void set(int pos, int value) {
            if(pos<0||pos>=usedsize){
                throw new RuntimeException("输入不合法！");

            }
            this.elem[pos]=value;
        }

        //删除第一次出现的关键字key
        public void remove(int toRemove) {
            if(isEmpty()){
                throw new RuntimeException("空");
            }

            int tmp=indexOf(toRemove);
            for (int i=tmp;i<usedsize;i++){
                elem[i]=elem[i+1];
            }
            usedsize--;
        }

        // 获取顺序表长度
        public int size() {
            return usedsize;
        }

        // 清空顺序表
        public void clear() {
            //方法一
            usedsize=0;


        }

        //判断是否满了
    public boolean isFull(){
        if(this.usedsize==this.elem.length){
            return true;

        }
        return false;
    }

    //判断是否kong
    public boolean isEmpty(){
        if(this.usedsize==0){
            return true;

        }
        return false;
    }

}


